#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
day 25 homework
"""
# 一、正则表达式练习
# 1、匹配整数或者小数（包括正数和负数）
"""
(-?\d+\.\d+)|(-?\d+)
"""
# 2、匹配年月日日期 格式2018-12-6
"""
^\d{4}-((1[0-2])|[1-9])-((30|31)|([12]\d)|[1-9])$
"""
# 3、匹配qq号
"""
[1-9]([0-9]{5,11})
"""
# 4、11位的电话号码
"""
(13|14|15|17|18|19)[0-9]{9}
"""
# 5、长度为8-10位的用户密码 ： 包含数字字母下划线
"""
\w{8,10}
"""
# 6、匹配验证码：4位数字字母组成的
"""
[0-9a-zA-Z]{4}
"""
# 7、匹配邮箱地址
"""
^\w[-\w.+]*@(\w+-?\w+\.)+[A-Za-z]{2,14}
"""
# 8、1-2*((60-30+(-40/5)(9-25/3+7/399/42998+10568/14))-(-43)/(16-32))
# 从上面算式中匹配出最内层小括号以及小括号内的表达式
"""
\((-?\d+[\/\*\+]+\d+)\)|\(\d([\+\-\*/]\d+)+\)
"""
"""
\([^()]+\)
"""
# 9、从类似9-25/3+7/399/42998+10*568/14的表达式中匹配出乘法或除法
"""
\d+[\*\/]\d+([\*\/]\d+)*
"""
# 10、从类似
# s1 = '<a>wahaha</a>'
# s2 = '<b>banana</b>'
# s3 = '<h1>qqxing</h1>'
# 这样的字符串中，
# 1）匹配出<a>,<b>,<h1>这样的内容
"""
<\w+>
"""
# 2）匹配出wahaha，banana，qqxing内容。(思考题)
"""
import re

ret = re.sub('</?\w+>', '', s1)
print(ret)
"""
# 自学一下内容，完成10、2)
# ret = re.search("<(?P<tag_name>\w+)>\w+</w+>","<h1>hello</h1>")
# 还可以在分组中利用?的形式给分组起名字
# 获取的匹配结果可以直接用group('名字')拿到对应的值
# print(ret.group('tag_name')) #结果 ：h1
# print(ret.group()) #结果 ：<h1>hello</h1>

# 二、使用listdir完成计算文件夹大小
"""
import os

def get_size(path):
    size = 0
    path_list = [path]
    while path_list:
        path = path_list.pop()
        lst = os.listdir(path)
        for file in lst:
            file_path = os.path.join(path, file)
            if os.path.isfile(file_path):
                size += os.path.getsize(file_path)
            else:
                path_list.append(file_path)
    return size

print(get_size(r'F:\CPU-Z'))
"""
